/*
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>

    int open(const char *pathname, int flags, mode_t mode);
        参数：
            -pathname:要创建的文件路径
            -flags:对文件的操作权限和其他的设置
                -必选项：O_RDONLY,  O_WRONLY,  O_RDWR，这三个之间是互斥的
                -可选项：O_CREAT 文件不存在，创建新文件
            -mode:八进制的数，表示创建出的新的文件的操作权限，比如：0777（0开头表示八进制数）
            r:读的权限，w:写的权限，x:可执行的权限 -> rwx就是111，一共三组，分别是当前用户对文件的权限，当前用户所在组对文件的权限，其他组对文件的权限
            最大rwxrwxrwx也就是111111111，转为八进制就是0777
            最终的权限是：mode & ~umask，如果这里umask为0002
            0777 -> 111111111
        &   0775 -> 111111101
        -------------------------
                    111111101
        最终权限是0775，rwxrwxr-x
        按位与：0与任何数都为0
        umask的作用就是抹去某些权限

        flags参数是一个int类型的数据，占4个字节，32位。
        flags 32个位，每一位就是一个标志位。用或可在对应位加上标志位
*/
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>

int main(){
    //创建一个新的文件
    int fd = open("create.txt",O_RDWR|O_CREAT,0777);
    if(fd ==-1){
        perror("open");
    }
    //关闭
    close(fd);

    return 0;
}